export const MAP_EDIT_EVENT = {
  CREATED: 'Map:onMapEditCreate',
  SELECTED: 'Map:onMapEditSelected',
  SELECTED_CANCEL: 'Map:onMapEditSelectedCancel',
  EDIT: 'Map:onMapEdit',
  EDIT_CANCEL: 'Map:onMapEditCancel',
  UPDATE: 'Map:onMapEditUpdate',
  DELETE: 'Map:onMapEditDelete',
}

// minemap-edit，文档地址：https://minedata.cn/minemapapi/minemap-plugins/edit/edit-api.html
export const MAP_EDIT_MODE = {
  '0': 'point', // 画点
  '1': 'icon', // 画标注
  '2': 'line', // 画线
  '3': 'arc', // 画圆弧
  '4': 'text', // 文字
  '5': 'polygon', // 画多边形
  '6': 'rectangle', // 画矩形
  '7': 'triangle', // 画三角形
  '8': 'circle', // 画圆
  '9': 'ellipse', // 画椭圆
  '10': 'sector', // 画扇形
  '11': 'trash', // 删除所选 // 可用于在绘制时清除绘制 <= 键盘 esc 可以达到相同效果
  '12': 'combine', // 合并同类图形
  '13': 'uncombine', // 拆分同类图形
  '14': 'union_polygon', // 合并面
  '15': 'split_polygon', // 拆分面
  '16': 'union_line', // 合并线
  '17': 'split_line', // 拆分线
  '18': 'curve_line', // 弯曲线
  '19': 'free_drawing', // 画草图
  '20': 'line_arrow', // 画直线箭头
  '21': 'thin_straight_arrow', // 画细直箭头
  '22': 'thin_tail_arrow', // 画细直(尾)箭头
  '23': 'attack_arrow', // 画突击箭头
  '24': 'offensive_arrow', // 画进攻箭头
  '25': 'offensive_tail_arrow', // 画进攻(尾)箭头
  '26': 'pincer_attack_arrow', // 画钳击箭头
  '27': 'curve_polygon', // 曲线面
  '28': 'undo', // 撤销上一步操作
  '29': 'redo', // 重复上一步操作
  '30': 'static' // 切换为不可编辑模式
}

// MAP_EDIT_STYLE_OPTIONS 和 getBtnCtrlActiveOptions 用于edit.onBtnCtrlActive(mode, options)开启编辑。
export const MAP_EDIT_STYLE_OPTIONS = {
  point: {
    circleColor: { label: '圆点颜色', value: '#55B1F3', componentType: 'colorPicker' },
    circleRadius: { label: '圆点半径', value: 4, componentType: 'inputNumber' },
    circleBorderColor: { label: '边框颜色', value: '#ffffff', componentType: 'colorPicker' },
    circleBorderRadius: { label: '边框宽度', value: 2, componentType: 'inputNumber' },
  },
  icon: {
    iconImage: { label: '图标示例', value: '', componentType: 'image' },
    iconSize: { label: '缩放比例', value: 1, componentType: 'inputNumber', step: 0.1 },
    iconRotate: { label: '旋转角度', value: 0, componentType: 'inputNumber', max: 360 },
  },
  text: {
    textField: { label: '文字内容', value: '', componentType: 'input' },
    textColor: { label: '文字颜色', value: '#ffffff', componentType: 'colorPicker' },
    textSize: { label: '文字大小', value: 14, componentType: 'inputNumber' },
  },
  line: {
    lineColor: { label: '线条颜色', value: '#55B1F3', componentType: 'colorPicker' },
    lineWidth: { label: '线条宽度', value: 2, componentType: 'inputNumber' },
    lineDasharray: { label: '线条类型', value: 'false', componentType: 'radio', options: [{ label: '实线', value: 'false' }, { label: '虚线', value: 'true' }] },
    lineOpacity: { label: '不透明度', value: 1, componentType: 'inputNumber', max: 1, step: 0.1 },
  },
  polygon: {
    fillColor: { label: '填充颜色', value: '#55B1F3', componentType: 'colorPicker' },
    fillOpacity: { label: '不透明度', value: 0.1, componentType: 'inputNumber', max: 1, step: 0.1 },
    fillOutlineColor: { label: '边框颜色', value: '#ffffff', componentType: 'colorPicker' },
    fillOutlineWidth: { label: '边框宽度', value: 2, componentType: 'inputNumber' },
    fillOutlineOpacity: { label: '边框不透明度', value: 1, componentType: 'inputNumber', max: 1, step: 0.1 },
    fillOutlineDasharray: { label: '边框类型', value: 'false', componentType: 'radio', options: [{ label: '实线', value: 'false' }, { label: '虚线', value: 'true' }] },
  },
  arrow: {
    startArrowType: { label: '开始箭头类型', value: 'none', componentType: 'select', options: [{ label: '无箭头', value: 'none' }, { label: '普通箭头', value: 'normal' }, { label: '空心箭头', value: 'hollow' }] },
    endArrowType: { label: '结尾箭头类型', value: 'normal', componentType: 'select', options: [{ label: '无箭头', value: 'none' }, { label: '普通箭头', value: 'normal' }, { label: '空心箭头', value: 'hollow' }] },
    lineType: { label: '线条类型', value: 'solid', componentType: 'select', options: [{ label: '直线', value: 'solid' }, { label: '肘形线', value: 'elbow' }, { label: '曲线', value: 'curve' }] },
  }
}

export const getBtnCtrlActiveOptions = (markType, styleOptions) => {
  if (markType == 'arrow') return { shape: styleOptions };
  if (markType == 'text') return { style: { ...styleOptions, custom_style: 'true' } };
  return { style: styleOptions };
}

// export const getMapEditModeOptions = (editMode) => {
//   switch (editMode) {
//     case 'point':
//       return {
//         style: {
//           circleColor: '#55B1F3',
//           circleRadius: 4,
//           circleBorderColor: '#ffffff',
//           circleBorderRadius: 2, // 点边框宽度
//           custom_style: "true"
//         },
//       };
//     case 'icon':
//       return {
//         style: {
//           iconImage: '',
//           iconSize: 1, // 缩放比例
//           iconRotate: 0,
//           // iconColor: '' // 图标颜色（如果图标是矢量的可编辑颜色的，需要增加该参数，否则不需要该参数）
//           custom_style: "true"
//         },
//       };
//     case 'text':
//       return {
//         style: {
//           textField: '文字名称',
//           textColor: '#333333',
//           textSize: 26,
//           custom_style: 'true',
//         },
//       };
//     case 'line':
//     case 'arc':
//     case 'curve_line':
//     case 'free_drawing':
//       return {
//         style: {
//           lineColor: '#55B1F3',
//           lineWidth: 2,
//           lineOpacity: 1,
//           lineDasharray: 'false', // 字符串类型的 true 和 false
//           custom_style: "true"
//         },
//       };
//     case 'polygon':
//     case 'rectangle':
//     case 'triangle':
//     case 'circle':
//     case 'ellipse':
//     case 'sector':
//     case 'curve_polygon':
//       return {
//         style: {
//           fillColor: '#55B1F3',
//           fillOpacity: 0.1,
//           fillOutlineColor: 'red',
//           fillOutlineWidth: 2,
//           fillOutlineOpacity: 1,
//           fillOutlineDasharray: 'false',
//           custom_style: "true"
//         },
//       };
//     case 'line_arrow':
//     case 'thin_straight_arrow':
//     case 'thin_tail_arrow':
//     case 'attack_arrow':
//     case 'offensive_arrow':
//     case 'offensive_tail_arrow':
//     case 'pincer_attack_arrow':
//       return {
//         shape: {
//           startArrowType: 'none', // 开始箭头类型，值域范围：'none'-无箭头,'normal'-普通箭头,'hollow'-空心箭头，默认值'none'
//           endArrowType: 'normal', // 结尾箭头类型，值域范围：'none'-无箭头,'normal'-普通箭头,'hollow'-空心箭头，默认值'normal'
//           lineType: 'solid', // 线条类型，值域范围：'solid'-直线,'elbow'-肘形线,'curve'-曲线，默认值'solid'
//         },
//       };
//     default:
//       return null;
//   }
// }

// const getFeatureData = () => {
//   return {
//     id: '1',
//     type: 'Feature',
//     geometry: {
//       type: 'Point',
//       coordinates: [116.397428, 39.90923],
//     },
//     properties: {
//       name: '北京',
//     },
//   };
// }